package com.xinpu.mapper;

import com.xinpu.dto.UserDto;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

/**
 * UserMapper
 *
 * @author ayuan
 * @date 2021/4/16
 */
@Repository
public interface UserMapper {

    /**
     * 用户详细信息
     *
     * @param id
     * @return
     */
    UserDto findById(@Param("id") Integer id);

    /**
     * 新增用户统计
     *
     * @param pid
     * @return
     */
    int addUserCount(@Param("pid") Integer pid);


    /**
     * 线索或用户统计
     *
     * @param userOrClue
     * @param type
     * @param pid
     * @return
     */
    int userOrClueCount(@Param("userOrClue") Integer userOrClue, @Param("type") Integer type, @Param("pid") Integer pid);

    /**
     * 完成用户统计
     *
     * @param type
     * @param pid
     * @return
     */
    int okUser(@Param("type") Integer type, @Param("pid") Integer pid);

    /**
     * 用户列表总数
     *
     * @return
     */
    @Select("SELECT COUNT(*) FROM t_user WHERE type=0 and pid>0")
    Integer userCount();

    /**
     * 线索列表总数
     *
     * @return
     */
    @Select("SELECT COUNT(*) FROM t_user WHERE type=1 and pid>0")
    Integer clueCount();

    /**
     * 用户列表总数
     *
     * @return
     */
    @Select("SELECT COUNT(*) FROM t_user WHERE type=0 and pid=0")
    Integer publicUserCount();

    /**
     * 线索列表总数
     *
     * @return
     */
    @Select("SELECT COUNT(*) FROM t_user WHERE type=1 and pid=0")
    Integer publicClueCount();

    /**
     * 所有用户总数
     *
     * @return
     */
    @Select("SELECT COUNT(*)  FROM t_user")
    Integer userNum();

    /**
     * 男性总数
     *
     * @return
     */
    @Select("SELECT COUNT(sex) FROM t_user WHERE sex=0")
    Integer manNum();

    /**
     * 女性总数
     *
     * @return
     */
    @Select("SELECT COUNT(sex) FROM t_user WHERE sex=1")
    Integer womanNum();
}
